home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-12 | 4.4 KB | 168 lines | [TEXT/CCL2] |
- (require 'appleevent-toolkit)
- (use-package "DEFAPPLEEVENTS")
-
- ;; handy place to find address of local Finder
- ;;
- (defvar finder-signature `(:aedesc ,#$typeApplSignature :|MACS|))
-
- ;; define the form of appleevents in the finder suite
- ;; (Not all of these have been tested -RGP)
-
- (defappleevent about #$kCoreEventClass :|abou| () ())
-
- (defappleevent close-window :|FNDR| :|clos| ((direct-object #$keyDirectObject)) ())
-
- (defappleevent drag-selection :|FNDR| :|drag|
- ((direct-object #$keyDirectObject)
- (miscellaneous :|fmsc|)
- (selection :|fsel|))
- ())
-
- (defappleevent open-selection :|FNDR| :|sope|
- ((direct-object #$keyDirectObject)
- (selection :|fsel|))
- ())
-
- (defappleevent duplicate-selection :|FNDR| :|sdup|
- ((direct-object #$keyDirectObject)
- (selection :|fsel|))
- ())
-
- (defappleevent empty-trash :|FNDR| :|empt| () ())
-
- (defappleevent get-info :|FNDR| :|sinf|
- ((direct-object #$keyDirectObject)
- (selection :|fsel|))
- ())
-
- (defappleevent make-alias :|FNDR| :|sali|
- ((direct-object #$keyDirectObject)
- (selection :|fsel|))
- ())
-
- (defappleevent move-selection :|FNDR| :|move|
- ((direct-object #$keyDirectObject)
- (miscellaneous :|fmsc|)
- (selection :|fsel|))
- ())
-
- (defappleevent move-window :|FNDR| :|posn|
- ((direct-object #$keyDirectObject)
- (miscellaneous :|fmsc|))
- ())
-
- (defappleevent open-selection :|FNDR| :|sope|
- ((direct-object #$keyDirectObject)
- (selection :|fsel|))
- ())
-
- (defappleevent page-setup :|FNDR| :|pgsu|
- ((direct-object #$keyDirectObject))
- ())
-
- (defappleevent print-selection :|FNDR| :|spri|
- ((direct-object #$keyDirectObject)
- (selection :|fsel|))
- ())
-
- (defappleevent print-window :|FNDR| :|pwin|
- ((direct-object #$keyDirectObject))
- ())
-
- (defappleevent put-away :|FNDR| :|sput|
- ((direct-object #$keyDirectObject)
- (selection :|fsel|))
- ())
-
- (defappleevent resize-window :|FNDR| :|grow|
- ((direct-object #$keyDirectObject)
- (miscellaneous :|fmsc|))
- ())
-
- (defappleevent restart :|FNDR| #$kaerestart () ())
-
- (defappleevent reveal :|FNDR| :|srev|
- ((direct-object #$keyDirectObject)
- (selection :|fsel|))
- ())
-
- (defappleevent set-view :|FNDR| :|view|
- ((direct-object #$keyDirectObject)
- (miscellaneous :|fmsc|))
- ())
-
- (defappleevent sharing :|FNDR| :|sprv|
- ((direct-object #$keyDirectObject)
- (miscellaneous :|fmsc|))
- ())
-
- (defappleevent show-clipboard :|FNDR| :|shcl| () ())
-
- (defappleevent shutdown :|FNDR| #$KAEShutDown () ())
-
- (defappleevent resize-window :|FNDR| :|zoom|
- ((direct-object #$keyDirectObject)
- (miscellaneous :|fmsc|))
- ())
-
- (defrecord finderwindow
- (windowtype :long)
- (aliastype :desctype)
- (aliaslength :long)
- (alias :aliasrecord))
-
- (defconstant kAESharing 13)
- (defconstant kByCommentView 6)
- (defconstant kByDateView 3)
- (defconstant kByIconView 1)
- (defconstant kByKindView 5)
- (defconstant kAEInfo 11)
- (defconstant kByLabelView 7)
- (defconstant kAEMain 0)
- (defconstant kByNameView 2)
- (defconstant kBySizeView 4)
- (defconstant kBySmallIcon 0)
- (defconstant kByVersionView 8)
- (defconstant zoomIn 7)
- (defconstant zoomOut 8)
-
- (defun pathname->finder-window (pathname
- &key (windowtype kAEMain))
- (let* ((alias (defappleevents::pathname->alias-handle pathname))
- (finder-window (#_NewPtr (+ 12 (#_getHandleSize alias)))))
- (unwind-protect
- (progn
- (rset finder-window :finderwindow.windowtype windowtype)
- (rset finder-window :finderwindow.aliastype #$typeAlias)
- (rset finder-window :finderwindow.aliaslength
- (#_getHandleSize alias))
- (with-dereferenced-handles ((alias-ptr alias))
- (#_BlockMove
- alias-ptr
- (%int-to-ptr
- (+ 12 (%ptr-to-int finder-window)))
- (#_getHandleSize alias)))))
- finder-window))
-
- #|
- ;Examples:
- (with-aedescs (about)
- (send-appleevent
- (make-about about finder-signature)
- (%null-ptr)))
-
- (with-aedescs (openit)
- (send-appleevent
- (make-open-selection openit finder-signature
- :direct-object `(:aedesc ,#$typeAlias #P"Alcatraz:")
- :selection `(:aelist
- (:aedesc ,#$typeAlias #P"Alcatraz:MCL:")))
- (%null-ptr)))
-
- (let ((fw (pathname->finder-window #p"Alcatraz:MCL:")))
- (with-aedescs (closeit)
- (send-appleevent
- (make-close-window closeit finder-signature
- :direct-object `(:aedesc :|fwin| ,fw)) (%null-ptr))
- (dispose-record fw)))
- |#